from 消息队列.orm.main import session

str1 = "hello"
str2 = "world"

t1 = (1,2)
t2 = (3,4)

l1 = [1,2]
l2 = [3,4]

dict1 = {"name":"jack"}
dict2 = {"age":18}

print(str1 + str2)
print(t1 + t2)
print(l1 + l2)
# print(dict1 + dict2) # 报错，因为字典没有实现加法运算
print(str1 * 3)
print(t1 * 3)
print(l1 * 3)
# print(dict1 * 3) # 报错，因为字典没有实现乘法运算

'''
in 操作符
'''

print("a" in str1)
print(1 in t1)
print(3 in l1)
print(3 not in l1)
print("name" in dict1)


'''
计算容器中元素的个数
'''

dict3 = {"name":"jack","age":18}
print(len(str1))
print(len(t1))
print(len(l1))
print(len(dict1))
print(len(dict3)) # 2, 因为字典的键值对，键和值都是唯一的，所以字典的长度就是键值对的个数

'''删除操作'''

# del str1 # 删除str1
# print(str1) # 报错，因为str1已经被删除了
# del t1
# print(t1) # 报错，因为t1已经被删除了
# del l1
# print(l1) # 报错，因为l1已经被删除了
# del dict1
# print(dict1) # 报错，因为dict1已经被删除了
del dict3["name"]
print(dict3) # {'age': 18}
# del str1[0]
# print(str1) # 报错，因为str1是不可变类型，不能删除元素
# del t1[0]
# print(t1) # 报错，因为t1是不可变类型，不能删除元素
del l1[0]
print(l1) # [2], 删除了第一个元素
del dict1["name"]
print(dict1) # {}

'''
max 和 min
'''

l3 = [1,2,3,4,5]
print(max(l3)) # 5
print(min(l3)) # 1


'''
range(start, stop, step)
start: 计数从 start 开始。默认是从 0 开始。例如range（5）等价于range（0， 5）;
stop: 计数到 stop 结束，但不包括 stop。例如：range（0， 5） 是[0, 1, 2, 3, 4]没有5
step：步长，默认为1。例如：range（0， 5） 等价于 range(0, 5, 1)
'''
print(range(10)) # range(0, 10)
print(range(1,10)) # range(1, 10)

for i in range(1,10,2):
    print(i)

'''
enumerate(sequence, [start=0])
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
'''
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for i, season in enumerate(seasons):
# i为下标，season为元素, 从0开始, 步长为1, 可以指定起始位置, 例如enumerate(seasons, start=1)
# 迭代出的其实是一个元祖，元祖中有两个元素，第一个元素是下标，第二个元素是元素
    print(i, season)

for i, season in enumerate(seasons, start=1):
    print(i, season)

